ovecs->position_ops.wr_deinit();
}
exit(0);
+printf("early\n");
}
tpo_rd_init(const char* fname)
{
+ // preprare for an attempt to deallocate memory that may or may not get allocated
+ // depending on the options used.
tpo_index_ptr = 0;
+ tpo_wp_index = NULL;
tpo_file_in = gbfopen_le(fname, "rb", MYNAME);
tpo_check_version_string();
for (i = 0; i < tpo_index_ptr; i++) {
waypt_free(tpo_wp_index[i]);
}
+ tpo_index_ptr = 0;
// Free the index array itself
- xfree(tpo_wp_index);
+ if (tpo_wp_index) {
+ xfree(tpo_wp_index);
+ tpo_wp_index = NULL;
+ }
gbfclose(tpo_file_in);
}